HyperText Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP functions as a request-response protocol in the client-server computing model. A web browser, for example, may be the client and an application running on a computer hosting a web site may be the server. The client submits an HTTP request message to the server. The server, which provides resources, such as HTML files and other content, or performs other functions on behalf of the client, returns a response message to the client. The response contains completion status information about the request and may also contain the requested content in its message body.
HTTP resources are identified and located on the network by Uniform Resource Locators (URLs), using the Uniform Resource Identifier (URI) schemes http and https. A URL (commonly informally referred to as a “web address”) is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it.
HTTP is designed to permit intermediate network elements to improve or enable communications between clients and servers. However, fetching a resource using HTTP can be time consuming. For example, the retrieval of a resource may require several interactions between the client and the server.
As a result, an HTTP cache may be utilized by the web browser to store local copies of web resources for faster retrieval the next time the resource is required. When a resource is fully cached, the web browser may choose to not contact the server at all and simply use its own cached copy thereby improving performance by reducing the interactions between the client and the server as well as reducing server load (server does not need to fetch the requested resource) and improving response time (faster to retrieve resource from the cache than from the server).
However, such HTTP caching mechanisms, which utilize the HTTP/1.1 protocol, cache the resource based on the URL. Hence, when a client requests a resource associated with a different URL than those resources cached, the client will have to request the resource from the server. However, the requested resource may include content that was previously cached, even though it is associated with a different URL. As a result, performance is hindered since the client cannot reuse the previously cached content since it is associated with a different URL and the client is required to request the content from the server.
Therefore, there is a need in the art for improving performance in connection with requesting resources by reducing server load and improving response time by having the client be able to utilize previously cached content that is requested even though it is associated with a different URL.